#ifndef UTILS_JSON_H
#define UTILS_JSON_H

#include <string>
#include <vector>
#include "../asset/model.h"

// JSON工具类，提供简单的JSON序列化和反序列化功能
class JsonUtils {
public:
    // 将资产对象序列化为JSON字符串
    static std::string serializeAsset(const Asset& asset);
    
    // 将资产列表序列化为JSON字符串
    static std::string serializeAssets(const std::vector<Asset>& assets);
    
    // 将JSON字符串解析为资产对象
    static Asset parseAsset(const std::string& json);
    
    // 将JSON字符串解析为资产列表
    static std::vector<Asset> parseAssets(const std::string& json);

private:
    // 辅助函数：转义JSON中的特殊字符
    static std::string escapeJson(const std::string& input);
    
    // 辅助函数：解析键值对
    static bool parseKeyValue(const std::string& json, size_t& pos, 
                             std::string& key, std::string& value);
};

#endif // UTILS_JSON_H
